package interfaces;

import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.List;
import java.util.Vector;

import valueObjects.game.Player;
import exception.game.SaveFileNotFoundException;

public interface IDataFiles extends Remote {
	
	/**
	 * Loads a game by the given parameters.
	 * @param vector
	 * @param file
	 * @return {@link GameManagement}
	 * @throws SaveFileNotFoundException
	 */
	public IGameManagement loadGame(Vector<Player> vector, String file) throws SaveFileNotFoundException, RemoteException;

	/**
	 * Returns a list of Strings representing the filenames of the savegames by the given users
	 * @param currentPlayers
	 * @return
	 * @throws RemoteException
	 */
	public List<String> savegames(Vector<Player> currentPlayers) throws RemoteException;

	/**
	 * Returns the filename where the players are stored
	 * @return
	 * @throws RemoteException
	 */
	public String getPlayersFile() throws RemoteException;

	/**
	 * Returns the main resource file
	 * @return
	 * @throws RemoteException
	 */
	public String getMainFile() throws RemoteException;

}
